"use strict";
var props = {
  datasource: [String, Array, Function],
  method: {
    type: String,
    default: "GET"
  },
  where: Object,
  headers: Object,
  contentType: {
    type: String,
    default: "application/json"
  },
  request: Object,
  response: Object,
  parseData: Function,
  parseParam: Function,
  ascendValue: String,
  descendValue: String,
  selection: Array,
  current: Object,
  needPage: {
    type: Boolean,
    default: true
  },
  initLoad: {
    type: Boolean,
    default: true
  },
  loading: Boolean,
  columns: {
    type: Array,
    required: true
  },
  currentPage: {
    type: Number,
    default: 1,
    validator(value) {
      return value > 0;
    }
  },
  pageSize: {
    type: Number,
    default: 10,
    validator(value) {
      return value > 0;
    }
  },
  toolsTheme: String,
  title: String,
  subTitle: String,
  toolkit: {
    type: Array,
    default() {
      return ["reload", "size", "columns", "fullscreen"];
    }
  },
  columnsSort: {
    type: Boolean,
    default: true
  },
  toolbar: {
    type: Boolean,
    default: true
  },
  toolStyle: [Object, String],
  toolClass: String,
  toolkitStyle: [Object, String],
  fullZIndex: {
    type: Number,
    default: 999
  },
  autoAmendPage: {
    type: Boolean,
    default: true
  },
  rowClickChecked: Boolean,
  rowClickCheckedIntelligent: {
    type: Boolean,
    default: true
  },
  parentIdName: {
    type: String,
    default: "parentId"
  },
  defaultParentId: [String, Number],
  parentIdField: String,
  paginationStyle: [Object, String],
  pagerCount: {
    type: Number,
    default: 5
  },
  layout: {
    type: String,
    default: "total, sizes, prev, pager, next, jumper"
  },
  pageSizes: {
    type: Array,
    default() {
      return [10, 20, 30, 40, 50, 100];
    }
  },
  popperClass: String,
  prevText: String,
  nextText: String,
  hideOnSinglePage: {
    type: Boolean,
    default: false
  },
  fullHeight: [String, Number],
  height: [String, Number],
  maxHeight: [String, Number],
  stripe: Boolean,
  border: {
    type: Boolean,
    default: true
  },
  size: String,
  fit: {
    type: Boolean,
    default: true
  },
  showHeader: {
    type: Boolean,
    default: true
  },
  highlightCurrentRow: Boolean,
  currentRowKey: [String, Number],
  rowClassName: [String, Function],
  rowStyle: [Object, Function],
  cellClassName: [String, Function],
  cellStyle: [Object, Function],
  headerRowClassName: [String, Function],
  headerRowStyle: [Object, Function],
  headerCellClassName: [String, Function],
  headerCellStyle: [Object, Function],
  rowKey: [String, Function],
  emptyText: String,
  defaultExpandAll: Boolean,
  expandRowKeys: Array,
  defaultSort: Object,
  tooltipEffect: String,
  showSummary: Boolean,
  sumText: String,
  summaryMethod: Function,
  spanMethod: Function,
  selectOnIndeterminate: {
    type: Boolean,
    default: true
  },
  indent: {
    type: Number,
    default: 16
  },
  lazy: Boolean,
  load: Function,
  treeProps: {
    type: Object,
    default() {
      return {
        hasChildren: "hasChildren",
        children: "children"
      };
    }
  }
};
module.exports = props;
